﻿/*
 * @author: wizardc
 */

using System.Collections.Generic;
using MessagePack;

namespace Dou.Resource
{
    /// <summary>
    /// 记录打包资源的所有数据清单文件
    /// </summary>
    [MessagePackObject(true)]
    public class ResourceManifest
    {
        /// <summary>
        /// AB 加密包名
        /// </summary>
        public Dictionary<string, string> abName;
        
        /// <summary>
        /// 所有的 AB 包包名列表
        /// </summary>
        public string[] allABFile;

        /// <summary>
        /// 直接依赖信息
        /// key -> AB 包名, value -> 依赖的包名
        /// </summary>
        public Dictionary<string, string[]> directDependents;
        
        /// <summary>
        /// 所有依赖信息，包括间接依赖
        /// key -> AB 包名, value -> 依赖的包名
        /// </summary>
        public Dictionary<string, string[]> dependents;

        /// <summary>
        /// 文件名对应的完整文件路径表
        /// key -> 文件名, value -> 资源文件完整路径
        /// </summary>
        public Dictionary<string, string> shortNames;

        /// <summary>
        /// 归属信息
        /// key -> 资源文件完整路径名称, value -> 包含该资源的 AB 包名
        /// </summary>
        public Dictionary<string, string> belongs;

        /// <summary>
        /// 直接走拷贝而非 AB 打包文件名对应的完整文件路径表（用于流式加载的文件，如 MP4 或者需要流式加载的自定义数据文件等）
        /// key -> 文件名, value -> 资源文件完整路径
        /// </summary>
        public Dictionary<string, string> rawNames;
    }
}
